import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'

// 创建一个AXIOS实例
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request urls
  // baseURL: 'http://192.168.0.201:8096',
  // baseURL: 'http://172.19.255.123:8096',
  withCredentials: true, // 当跨域请求时发送cookies
  timeout: 60 * 1000 // 请求超时
})

// 请求拦截器
service.interceptors.request.use(
  config => {

    // 在发出请求前做点什么
    const token = sessionStorage.getItem('token')
    if(token){
      config.headers['Authorization'] = token
    }
    if (store.getters.token) {
      // 让每个请求携带令牌
      config.headers['userId'] = getToken()
    }
    return config
  },
  error => {
    // 处理请求错误
    console.log('error', error) // 用于调试
    return Promise.reject(error)
  }
)

// 响应拦截器
// service.interceptors.response.use(
//   response => {
//     return response
//   },
//   error => {
//     if (error && error.response) {
//       switch (error.response.status) {
//         case 400: Message({ message: '请求错误 ( 400 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 401: Message({ message: '未授权，请重新登录 ( 401 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 403: Message({ message: '拒绝访问 ( 403 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 404: Message({ message: '请求出错 ( 404 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 408: Message({ message: '请求超时 ( 408 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 500: Message({ message: '服务器错误 ( 500 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 501: Message({ message: '服务未实现 ( 501 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 502: Message({ message: '网络错误 ( 502 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 503: Message({ message: '服务不可用 ( 503 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 504: Message({ message: '网络超时 ( 504 ) ！', type: 'error', duration: 2 * 1000 }); break
//         case 505: Message({ message: 'HTTP版本不受支持 ( 505 ) ！', type: 'error', duration: 2 * 1000 }); break
//         default: Message({ message: `连接出错 (${error.response.status})!`, type: 'error', duration: 2 * 1000 })
//       }
//     } else {
//       Message({ message: '连接服务器失败!', type: 'error', duration: 2 * 1000 })
//     }
//     return Promise.reject(error)
//   }
// )

export default service
